home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / plain C OS8 / Everything / ModelessBars.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-29  |  8.5 KB  |  268 lines  |  [TEXT/CWIE]

  1. /* ModelessBars.c -- modeless dialog */
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12. #include <stdlib.h>
  13.  
  14. #include "ResourceDefs.h"
  15. #include "Miscellany.h"
  16. #include "ControlUtils.h"
  17.  
  18. #include "Dispatcher.h"
  19. #include "ModelessBars.h"
  20.  
  21. #define kBarsPanel        1
  22. #define kScrollBarsLayer        2
  23. #define kStandardScroll        3
  24. #define kGraphicScroll        4
  25. #define kSliderScroll        5
  26. #define kTickMarksScroll        6
  27. #define kNonDirectionalScroll        7
  28. #define kLittleArrowsScroll        8
  29. #define kSpinnerScroll        9
  30. #define kVolumeControlScroll        10
  31. #define kJimSSliderScroll        11
  32. #define kProgressBarsLayer        12
  33. #define kStandard2Bar            13
  34. #define kIndeterminateBar            14
  35. #define kChasingArrowsBar            15
  36. #define kRectangleBar            16
  37. #define kRoundRectBar            17
  38. #define kBarberPoleBar            18
  39. #define kRoundBarberBar            19
  40.  
  41.  
  42. //----------
  43. DialogPtr        ModelessBarsDialog = nil;
  44.  
  45. //----------
  46. void    ModelessBars_Create ()
  47. {
  48.     ModelessBars*            dialog = NewModelessBars ();
  49.     DModelessBarsData*        data = NewDModelessBarsData ();
  50.  
  51.     AMDialog_MakeDialog ((AMDialog*)dialog, DLOG_ModelessBars);
  52.     ModelessBars_ConnectToData (dialog, (AMSignaler*)data);
  53. }
  54.  
  55. //----------
  56. void    ModelessBars_Show ()
  57. {
  58.     if (ModelessBarsDialog == nil) {
  59.         ModelessBars_Create ();
  60.     }
  61.     if (ModelessBarsDialog != nil) {
  62.         SelectWindow (ModelessBarsDialog);
  63.         ShowWindow (ModelessBarsDialog);
  64.     }
  65. }
  66.  
  67. //----------
  68. void    ModelessBars_Close ()
  69. {
  70.     HideWindow (ModelessBarsDialog);
  71. }
  72.  
  73. //----------
  74. ModelessBars*        NewModelessBars ()
  75. {
  76.     ModelessBars*        dialog;
  77.  
  78.     dialog = (ModelessBars*)malloc (sizeof (ModelessBars));
  79.     ModelessBars_Init (dialog);
  80.     SetClassID (dialog, classModelessBars);
  81.  
  82.     return dialog;
  83. }
  84.  
  85. //----------
  86. void    DeleteModelessBars (
  87.     ModelessBars*        dialog)
  88. {
  89.     ModelessBars_Free (dialog);
  90.     free (dialog);
  91. }
  92.  
  93. //----------
  94. void    ModelessBars_Init (
  95.     ModelessBars*        self)
  96. {
  97.     AMDialog_Init ((AMDialog*)self);
  98. }
  99.  
  100. //----------
  101. void    ModelessBars_Free (
  102.     ModelessBars*        self)
  103. {
  104.     AMDialog_Free ((AMDialog*)self);
  105. }
  106.  
  107. //----------
  108. void    ModelessBars_FinishMake (
  109.     ModelessBars*        self)
  110. {
  111.     ModelessBarsDialog = ((AMDialog*)self)->mDialog;
  112.  
  113.     self->mBarsHandle = AMDialog_GetControlItem ((AMDialog*)self, kBarsPanel);
  114.     self->mStandardHandle = AMDialog_GetControlItem ((AMDialog*)self, kStandardScroll);
  115.     self->mGraphicHandle = AMDialog_GetControlItem ((AMDialog*)self, kGraphicScroll);
  116.     self->mSliderHandle = AMDialog_GetControlItem ((AMDialog*)self, kSliderScroll);
  117.     self->mTickMarksHandle = AMDialog_GetControlItem ((AMDialog*)self, kTickMarksScroll);
  118.     self->mNonDirectionalHandle = AMDialog_GetControlItem ((AMDialog*)self, kNonDirectionalScroll);
  119.     self->mLittleArrowsHandle = AMDialog_GetControlItem ((AMDialog*)self, kLittleArrowsScroll);
  120.     self->mSpinnerHandle = AMDialog_GetControlItem ((AMDialog*)self, kSpinnerScroll);
  121.     self->mVolumeControlHandle = AMDialog_GetControlItem ((AMDialog*)self, kVolumeControlScroll);
  122.     self->mJimSSliderHandle = AMDialog_GetControlItem ((AMDialog*)self, kJimSSliderScroll);
  123.     self->mStandard2Handle = AMDialog_GetControlItem ((AMDialog*)self, kStandard2Bar);
  124.     self->mIndeterminateHandle = AMDialog_GetControlItem ((AMDialog*)self, kIndeterminateBar);
  125.     self->mChasingArrowsHandle = AMDialog_GetControlItem ((AMDialog*)self, kChasingArrowsBar);
  126.     self->mRectangleHandle = AMDialog_GetControlItem ((AMDialog*)self, kRectangleBar);
  127.     self->mRoundRectHandle = AMDialog_GetControlItem ((AMDialog*)self, kRoundRectBar);
  128.     self->mBarberPoleHandle = AMDialog_GetControlItem ((AMDialog*)self, kBarberPoleBar);
  129.     self->mRoundBarberHandle = AMDialog_GetControlItem ((AMDialog*)self, kRoundBarberBar);
  130. }
  131.  
  132. //----------
  133. void    ModelessBars_ConnectToData (
  134.     ModelessBars*        self,
  135.     AMSignaler*        inData)
  136. {
  137.     AMDialog_ConnectToData ((AMDialog*)self, inData);
  138.     self->mData = (DModelessBarsData*) inData;
  139.  
  140.     SetControlValue (self->mBarsHandle, GetBars3 (self->mData));
  141.     SetLayerGroupValue (self->mBarsHandle, GetControlValue (self->mBarsHandle));
  142.     SetControlValue (self->mStandardHandle, GetStandard8 (self->mData));
  143.     SetControlValue (self->mGraphicHandle, GetGraphic6 (self->mData));
  144.     SetControlValue (self->mSliderHandle, GetSlider3 (self->mData));
  145.     SetControlValue (self->mTickMarksHandle, GetTickMarks3 (self->mData));
  146.     SetControlValue (self->mNonDirectionalHandle, GetNonDirectional3 (self->mData));
  147.     SetControlValue (self->mLittleArrowsHandle, GetLittleArrows3 (self->mData));
  148.     SetControlValue (self->mSpinnerHandle, GetSpinner3 (self->mData));
  149.     SetControlValue (self->mVolumeControlHandle, GetVolumeControl3 (self->mData));
  150.     SetControlValue (self->mJimSSliderHandle, GetJimSSlider3 (self->mData));
  151.     SetControlValue (self->mStandard2Handle, GetStandard9 (self->mData));
  152.     SetControlValue (self->mIndeterminateHandle, GetIndeterminate3 (self->mData));
  153.     SetControlValue (self->mChasingArrowsHandle, GetChasingArrows3 (self->mData));
  154.     SetControlValue (self->mRectangleHandle, GetRectangle3 (self->mData));
  155.     SetControlValue (self->mRoundRectHandle, GetRoundRect3 (self->mData));
  156.     SetControlValue (self->mBarberPoleHandle, GetBarberPole3 (self->mData));
  157.     SetControlValue (self->mRoundBarberHandle, GetRoundBarber3 (self->mData));
  158. }
  159.  
  160. //----------
  161. void    ModelessBars_DoItem (
  162.     ModelessBars*        self,
  163.     SInt16        inItemHit)
  164. {
  165.     switch (inItemHit) {
  166.     case kBarsPanel:
  167.             SetBars3 (self->mData, GetControlValue (self->mBarsHandle));
  168.             SetLayerGroupValue (self->mBarsHandle, GetControlValue (self->mBarsHandle));
  169.         break;
  170.     case kStandardScroll:
  171.             SetStandard8 (self->mData, GetControlValue (self->mStandardHandle));
  172.         break;
  173.     case kGraphicScroll:
  174.             SetGraphic6 (self->mData, GetControlValue (self->mGraphicHandle));
  175.         break;
  176.     case kSliderScroll:
  177.             SetSlider3 (self->mData, GetControlValue (self->mSliderHandle));
  178.         break;
  179.     case kTickMarksScroll:
  180.             SetTickMarks3 (self->mData, GetControlValue (self->mTickMarksHandle));
  181.         break;
  182.     case kNonDirectionalScroll:
  183.             SetNonDirectional3 (self->mData, GetControlValue (self->mNonDirectionalHandle));
  184.         break;
  185.     case kLittleArrowsScroll:
  186.             SetLittleArrows3 (self->mData, GetControlValue (self->mLittleArrowsHandle));
  187.         break;
  188.     case kSpinnerScroll:
  189.             SetSpinner3 (self->mData, GetControlValue (self->mSpinnerHandle));
  190.         break;
  191.     case kVolumeControlScroll:
  192.             SetVolumeControl3 (self->mData, GetControlValue (self->mVolumeControlHandle));
  193.         break;
  194.     case kJimSSliderScroll:
  195.             SetJimSSlider3 (self->mData, GetControlValue (self->mJimSSliderHandle));
  196.         break;
  197.  
  198.     } // switch
  199. }
  200.  
  201. //----------
  202. void    ModelessBars_DataChanged (
  203.     ModelessBars*        self,
  204.     long        inDataID)
  205. {
  206.     if (inDataID == idBars3) {
  207.         SetControlValue (self->mBarsHandle, GetBars3 (self->mData));
  208.         SetLayerGroupValue (self->mBarsHandle, GetBars3 (self->mData));
  209.     }
  210.     if (inDataID == idStandard8) {
  211.         SetControlValue (self->mStandardHandle, GetStandard8 (self->mData));
  212.     }
  213.     if (inDataID == idGraphic6) {
  214.         SetControlValue (self->mGraphicHandle, GetGraphic6 (self->mData));
  215.     }
  216.     if (inDataID == idSlider3) {
  217.         SetControlValue (self->mSliderHandle, GetSlider3 (self->mData));
  218.     }
  219.     if (inDataID == idTickMarks3) {
  220.         SetControlValue (self->mTickMarksHandle, GetTickMarks3 (self->mData));
  221.     }
  222.     if (inDataID == idNonDirectional3) {
  223.         SetControlValue (self->mNonDirectionalHandle, GetNonDirectional3 (self->mData));
  224.     }
  225.     if (inDataID == idLittleArrows3) {
  226.         SetControlValue (self->mLittleArrowsHandle, GetLittleArrows3 (self->mData));
  227.     }
  228.     if (inDataID == idSpinner3) {
  229.         SetControlValue (self->mSpinnerHandle, GetSpinner3 (self->mData));
  230.     }
  231.     if (inDataID == idVolumeControl3) {
  232.         SetControlValue (self->mVolumeControlHandle, GetVolumeControl3 (self->mData));
  233.     }
  234.     if (inDataID == idJimSSlider3) {
  235.         SetControlValue (self->mJimSSliderHandle, GetJimSSlider3 (self->mData));
  236.     }
  237.     if (inDataID == idStandard9) {
  238.         SetControlValue (self->mStandard2Handle, GetStandard9 (self->mData));
  239.     }
  240.     if (inDataID == idIndeterminate3) {
  241.         SetControlValue (self->mIndeterminateHandle, GetIndeterminate3 (self->mData));
  242.     }
  243.     if (inDataID == idChasingArrows3) {
  244.         SetControlValue (self->mChasingArrowsHandle, GetChasingArrows3 (self->mData));
  245.     }
  246.     if (inDataID == idRectangle3) {
  247.         SetControlValue (self->mRectangleHandle, GetRectangle3 (self->mData));
  248.     }
  249.     if (inDataID == idRoundRect3) {
  250.         SetControlValue (self->mRoundRectHandle, GetRoundRect3 (self->mData));
  251.     }
  252.     if (inDataID == idBarberPole3) {
  253.         SetControlValue (self->mBarberPoleHandle, GetBarberPole3 (self->mData));
  254.     }
  255.     if (inDataID == idRoundBarber3) {
  256.         SetControlValue (self->mRoundBarberHandle, GetRoundBarber3 (self->mData));
  257.     }
  258. }
  259.  
  260. //----------
  261. Boolean        ModelessBars_Filter (
  262.     ModelessBars*            self,
  263.     EventRecord            *ioEvent,
  264.     DialogItemIndex        *outItemHit)
  265. {
  266.     return AMDialog_Filter ((AMDialog*)self, ioEvent, outItemHit);
  267. }
  268.